/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package sistema.ecua911.negocio.gestores;

import MatrizDinamica.Matriz;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import sistema.ecua911.Exepciones.NullUserExeption;
import sistema.ecua911.datos.BDs.DireccionDB;
import sistema.ecua911.datos.BDs.UsuarioBD;
import sistema.ecua911.negocio.Direccion;
import sistema.ecua911.negocio.Persona;
import sistema.ecua911.negocio.Usuario;

/**
 *
 * @author pablo
 */
public class GestorUsuario implements GestorMetodos {

    HashMap<String, Usuario> usuarios = new HashMap<String, Usuario>();
    
    public void Grabar(String cedula, String nombre, String apellido, String telefono, String ciudad, String zona, String calle, String num) throws NullUserExeption, SQLException {
        UsuarioBD usuarioBD = new UsuarioBD();
        GestorDireccion gd = new GestorDireccion();
        gd.Guardar(zona, calle, num);
        Usuario u = new Usuario(cedula, nombre, apellido, telefono, gd.getIdDirecion(zona, calle, num), ciudad);
        usuarioBD.grabar(u);
    }

    @Override
    public void Guardar(Object o) throws NullUserExeption {

    }

    @Override
    public void Modificar(String cedula) {
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }

    @Override
    public void Eliminar(String cedula) {
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }

    @Override
    public Persona buscar(String cedula) throws SQLException {
        UsuarioBD usuarioBD = new UsuarioBD();
        return usuarioBD.buscar(cedula);
    }
    @Override
    public MatrizDinamica.Matriz Listar() throws SQLException {// para listar los usuarios
        MatrizDinamica.Matriz matriz = new Matriz(8);
        UsuarioBD usuarioDB = new UsuarioBD();
        Object[] vec = new Object[8];
        ArrayList lista = usuarioDB.listar();
        for (Object o : lista) {
            Usuario u = (Usuario) o;
            DireccionDB direccionDB = new DireccionDB();
            u.setDirecion(direccionDB.buscar(u.getIddireccion()));
            Direccion direccion =u.getDirecion();
            vec[0] = u.getCedula();
            vec[1] = u.getNombre();
            vec[2] = u.getApellido();
            vec[3] = u.getTelefono();
            vec[4] = u.getCiudad();
            vec[5]=direccion.getZona();
            vec[6]=direccion.getCalle();
            vec[7]=direccion.getNumero();
            matriz.agregar(vec);
        }
        return matriz;
    }
}
